1. Field of the Invention
The present invention relates to a data transfer method, and more particularly, to a data transfer method for matching an upper protocol layer and IEEE 1394 data bus in order to effectively transfer data of an upper layer through the IEEE 1394 data bus while maintaining transparency of data packets in an existent communications application.
2. Description of the Related Art
The IEEE 1394 bus, a high speed serial bus, allows real-time multimedia data transfer. The IEEE 1394 bus provides an asynchronous service, an isochronous stream service or an asynchronous stream service. In this specification, the isochronous stream and asynchronous stream services are collectively called xe2x80x9cstream service.xe2x80x9d
FIG. 1 shows a communication layer for serving a general data communications application such as FTP (File Transfer Protocol) and data flow when packets are transferred by the asynchronous service. Data packets made by the existent applications do not specify a subaction type provided by the 1394 link.
Thus, when a communications application transfers data from an upper layer to the IEEE 1394 bus, the upper layer is not aware of the IEEE bus, so that not all functions provided by the 1394 serial bus can be sufficiently utilized.
Two matching methods can be considered; one for transferring data by considering all data packets to be asynchronous subaction, and the other for transferring data by considering all data packets to be isochronous subaction. However, the 1394 serial bus source cannot be effectively managed by the former method. That is, data provided by a connectionless oriented service such as IP (Internet Protocol) can be simply loaded on the 1394 asynchronous packet. However, in the few instances where applications actively use IEEE 1394 isochronous/asynchronous stream, the 1394 channel cannot be effectively utilized. Also, when asynchronous packets are congested with isochronous service, a basic cycle (125 ms) of the 1394 bus can not be maintained, so that the isochronous service becomes unstable.
Meanwhile, the latter method where all data packets are considered a wastes a limited channel source by allocating channels to all connections or allocating channels even when the amount of data is small, causing overload.
It is an object of the present invention to provide a method for matching an upper protocol layer for transferring data of an upper layer to an IEEE 1394 bus, capable of effectively transferring data packets of existing communications applications by an IEEE 1394 transfer method, while maintaining the transparency of transferred data.
In one embodiment, the present invention provides a data transfer method for matching an upper protocol layer to a high speed serial bus, the method comprising: (a) determining whether transfer data transferred from the upper protocol layer to the high speed serial bus is stream data, by identifying a transfer data type using a predetermined flow classifier; (b) if the transfer data is determined to be stream data, allocating a channel in the bus and transferring the transfer data through the channel; and (c) if the transfer data is determined not to be stream data, transferring the transfer data by an asynchronous transfer method according to the high speed serial bus standard, without allocating a channel.
Preferably, the flow classifier is at least one selected from the group consisting of an X/Y classifier which determines data flow by detecting a predetermined number of datagrams in a given amount time, a protocol classifier which determines data flow by detecting Transmission Control Protocol (TCP), or a classifier which determines data flow according to the port number of a transport layer.
In another embodiment, the present invention provides a data transfer method for matching an upper protocol layer to a high speed serial bus, the method comprising: (a) determining whether transfer data to be transferred from the upper protocol layer to the high speed serial bus, is stream data that is continuously transferred to a predetermined node which the bus can identify, by more than a predetermined amount; (b) if the transfer data is determined to be stream data, allocating a channel in the bus and transferring the transfer data through the channel; and (c) if the transfer data is determined not to be stream data, transferring the transfer data by an asynchronous transfer method according to the high speed serial bus standard, without allocating a channel.
Preferably, the data transfer method further comprises the steps of: storing a destination address of the transfer data and information about the allocated channel if the transfer data is determined to be stream data; and if the following transfer data is stream data and the destination address thereof is identical to the stored destination data of the preceding transfer data, transferring the transfer data through the corresponding channel.
Preferably, the step (b) of allocating a channel in the bus and transferring the transfer data through the channel comprises the step of determining whether the stream data is isochronous stream data or asynchronous stream data. Then, if the stream data is determined to be isochronous data, a channel and bandwidth both are allocated and the data is transferred through the allocated channel. If the stream data is asynchronous stream data, only a channel is allocated and the data is transferred through the allocated channel.